package com.jz.community.moduleshopping.confirmOrder.model;

import com.jz.community.basecomm.bean.baseGoods.ShopInfo;
import com.jz.community.basecomm.net.rxandroid.OnLoadListener;
import com.jz.community.moduleshopping.confirmOrder.bean.BaseOrderCouponInfo;
import com.jz.community.moduleshopping.confirmOrder.bean.OrderCouponInfo;
import com.jz.community.moduleshopping.confirmOrder.bean.UpdateOrderCouponInfo;
import com.jz.community.moduleshopping.confirmOrder.bean.OrderPayResultBean;
import com.jz.community.moduleshopping.confirmOrder.bean.OrderPostageInfo;
import com.jz.community.moduleshopping.confirmOrder.bean.SubmitOrderBean;
import com.jz.community.moduleshopping.confirmOrder.bean.SubmitOrderResultBean;
import com.jz.community.moduleshopping.confirmOrder.bean.UpdateCouponInfo;
import com.jz.community.moduleshopping.goodsDetail.bean.GoodsCouponInfo;

import java.util.List;

/**
 * Created by Tony.Fan on 2018/4/4 11:32
 */
public interface ConfirmOrderModel {

    void submitOrder(SubmitOrderBean orderSubmit, OnLoadListener<SubmitOrderResultBean> onLoadListener);

    void orderPostage(SubmitOrderBean orderSubmit, OnLoadListener<OrderPostageInfo> onLoadListener);

    void orderPay(String id, String payType, OnLoadListener<OrderPayResultBean> onLoadListener);

    void requestOrderPlatformAndShopCouponInfo(List<UpdateOrderCouponInfo> shopVoList, OnLoadListener<OrderCouponInfo> onLoadListener);

    void requestOrderPlatformCouponInfo(List<UpdateOrderCouponInfo> shopVoList, OnLoadListener<List<BaseOrderCouponInfo>> onLoadListener);

    void requestUpdateOrderCouponInfo(UpdateCouponInfo updateCouponInfo, OnLoadListener<GoodsCouponInfo> onLoadListener);

    SubmitOrderBean createConfirmOrderData(ShopInfo shopInfo, String addressId,String consigneeAddress, String consigneeName, String consigneePhone, String couponId, String cityCode, double sendPrice, String mentionId, String mentionName, String mentionPhone);

    List<UpdateOrderCouponInfo> orderPlatformAndShopCouponParam(ShopInfo shopInfo);

    List<UpdateOrderCouponInfo> orderPlatformCouponParam(ShopInfo shopInfo);
}
